package com.ssy.lingxi.purchase.service.tender;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.purchase.api.dto.request.tender.ExpertExtractBatchQueryRequest;
import com.ssy.lingxi.purchase.api.dto.request.tender.ExpertQueryRequest;
import com.ssy.lingxi.purchase.api.dto.request.tender.StatusRequest;
import com.ssy.lingxi.purchase.entity.tender.Expert;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 评标专家库管理类
 * @author jw.chen
 * @version 2.0.0
 * @date 2020/6/22
 */
public interface IExpertService {

    /**
     * 查询评标专家库列表
     * @param pageVO 分页实体
     * @param expertQueryRequest 评标专家库
     * @return
     */
    Page<Expert> getExpertList(UserLoginCacheDTO sysUser, PageVO pageVO, ExpertQueryRequest expertQueryRequest);

    /**
     * 查询评标专家库列表--按条件抽取
     * @param sysUser
     * @param expertQueryRequestList
     * @return
     */
    List<Expert> getBatchExpertList(UserLoginCacheDTO sysUser, List<ExpertExtractBatchQueryRequest> expertQueryRequestList);

    /**
     * 查询评标专家库
     * @param expertId
     * @return Wrapper<?>
     */
    Expert getExpert(UserLoginCacheDTO sysUser, Long expertId);

    /**
     * 添加/修改评标专家库
     * @param expert
     * @return
     * @throws Exception
     */
    String saveOrUpdateExpert(UserLoginCacheDTO sysUser, Expert expert);

    /**
     * 修改评标专家库状态
     * @param sysUser
     * @param statusRequest
     * @return
     */
    Boolean updateExpertStatus(UserLoginCacheDTO sysUser, StatusRequest statusRequest);

    /**
     * 批量删除评标专家库
     * @param idList
     * @return
     */
    String deleteBatchExpert(UserLoginCacheDTO sysUser, List<Long> idList);

}
